1. Technical Field
The present invention generally relates to Service Oriented Architectures (SOAs), and more particularly, but not by way of limitation, to an enterprise framework for creating, replacing, or modifying services on the SOA.
2. Background of the Related Art
Many service oriented architectures available today provide a generic system to meet customer needs that are common to a variety of customers. Although many architectures strive to meet most customer needs out of the box, it may not be possible to meet all customer needs in a core product that is sold to a large customer base. As such, many customers must extend or modify the behavior of the core product (e.g., core code base of service implementations within the SOA) to meet their specific needs. Modifications may also require access to source code and are generally more costly and difficult to maintain throughout upgrades etc. The term “core product” as defined herein refers to any item delivered in a product intended for more than one customer. The term “custom” as defined herein refers to any item added by a customer to supplement or change the core product (i.e., a supplement or change that is not shared by more than one customer). Source code may be in the core product or custom product, as well as any item supporting the source code, such as, configuration and deployment descriptors.
Furthermore, many customers customize the core product without consulting the core product provider. As a result, many customizations result in pervasive changes to the core product. For example, many customizations are currently accomplished via surround code and include new tables and stored procedures. Alteration of existing tables may disrupt standard product functions posing support issues. As illustrated above, by altering the core product, costs significantly increase for customers when attempting to upgrade the core product. For example, many customers may not be able to forward fit their customizations into the new upgraded core product. This, in turn, has lead to many customers resisting upgrades and/or using product combinations in non-standard configurations that may cause support and product management issues.
In addition, many architectures may not provide for easy integration with third party products either in front or behind service interfaces. For example a customer may wish to add a new service or replace a generic service with another third party product. Again, customers in today's market alter the core product in order to implement third party products, which may lead to complications when an upgrade or additional new products are available for the core product.